package com.cedric.entity;

import com.cedric.constants.JobStatus;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @program: delay-queue
 * @description: 任务对象
 * @author: 史偕成
 * @create: 2021/09/26 20:31
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Job implements Serializable {

    /**
     * 延迟任务的唯一标识 用于检索任务
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;


    /**
     * 任务类型（具体业务类型）
     */
    private String topic;

    /**
     * 任务延迟时间
     */
    private Long delayTime;

    /**
     * 任务执行超时时间
     */
    private Long ttrTime;

    /**
     * 任务消息 （用于具体业务逻辑处理）
     */
    private String message;

    /**
     * 重试次数
     */
    private int retryCount;

    /**
     * 任务状态
     */
    private JobStatus status;
}
